// import { getRoute } from "@/api/menuRoute";
import router from "@/router";
import { useUserStore } from "@/store/user";

// 定义能跳转的值
const whiteList = ["/login", "/profile", "/401", "/404", "/"];

router.beforeEach(async (to, from, next) => {
  const userStore = useUserStore();
  // 校验是否登录
  const isLoginCode = await userStore.checkLoginFn();

  // console.log(!isLoginCode);

  if (whiteList.includes(to.path)) {
    // 在白名单上
    if (!isLoginCode && to.path === "/login") {
      // 不继续往下走，直接回到首页
      return next("/");
    }
    next();
  } else {
    // 不在白名单
    // 获取所有路由
    const allRoute = (router.getRoutes());
    // 返回return条件的数组项下标
    const routeIndex = allRoute.findIndex((item) => {
      return item.path === to.path;
    });

    // 在路由表中且登录
    if (routeIndex >= 0 && !isLoginCode) {
      next();
    }
    // 在路由表中，未登录
    if (routeIndex >= 0 && isLoginCode) {
      next('/401');
    }
    // 不在路由表中
    if (routeIndex < 0) {
      next('/404')
    }
  }

  // next();
});
